package com.tang.framework.delay.support.domain;

import lombok.Builder;
import lombok.Data;

import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.concurrent.TimeUnit;

/**
 * @Author tang jun liang
 * @Date 2023/4/16 15:47
 */
@Data
@Builder
public class DelayMethod implements Serializable {

    /**
     * 延迟执行的方法
     */
    private Method targetMethod;


    /**
     * 延迟执行的实列
     */
    private Object bean;


    /**
     * 配置信息
     */
    private Config properties;



    @Builder
    @Data
    public static class Config {

        /**
         * 队列名称
         */
        private String name;


        /**
         * 重试次数
         */
        private int retry;


        /**
         * 重试间隔时间
         */
        private int retryIntervalTime;


        /**
         * 时间单位
         */
        private TimeUnit  timeUnit;


        /**
         * 是否开启事务
         */
        private Boolean enableTransaction;


    }

}
